The Universal Constructor And The Theory Of Self-Reproducing Machines